# !/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
===========================
@Time : 2022/10/24 0024 20:36
@Author : 测试开发工程师
@File : 5. DDL 表结构操作.py
@Software: PyCharm
============================
"""

"""
- 创建表

CREATE TABLE 数据表名 (

  列名1 属性,

  列名2 属性…

);

NOT NULL | NULL：该列是否允许是空值
DEFAULT：表示默认值
AUTO_INCREMENT：表示是否是自动编号，每张表只有一个列为自增
PRIMARY KEY：表示是否为主键

-- 切换到数据库 db1 

USE db1;



-- 创建学员表 

CREATE TABLE student( 

  id INT,

  name VARCHAR(20) 

);

-- 创建一个表结构与 student 相同的 s2 表 

CREATE TABLE s2 LIKE student;

-- 查看当前数据库中所有的表名

SHOW TABLES;

-- 查看表结构




-- 查看表结构简写

DESC 数据表名;

DESC 数据表名 列名;


-- 选择数据库

USE db1;

-- 查看数据库中的表

SHOW TABLES;

-- 查看学员表的表结构

DESC student;

-- 查看学员表中 name 列的信息

DESC student name;

-- 添加新列

ALTER TABLE 表名 ADD 列名 列属性;



# 实例

-- 选择数据库 db1

USE db1;

-- 添加新列

ALTER TABLE student ADD email varchar(50) NOT NULL;

-- 查看表结构

DESC student;


-- 修改列定义：类型

ALTER TABLE 表名 MODIFY 列名 列属性;



# 实例

-- 添加分数列，先定义为字符类型

ALTER TABLE student ADD score varchar(10);

-- 修改字段类型

ALTER TABLE student modify score int;

-- 查看表结构

DESC student;


-- 修改列名 

ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;



# 实例

-- 修改列名并指定列的默认值

ALTER TABLE student
CHANGE COLUMN name stu_name VARCHAR(30) DEFAULT NULL;

-- 查看表结构

DESC student;

-- 删除列

ALTER TABLE 表名 DROP 列名;



# 实例

-- 将数据表 student 中的列 score 删除

ALTER TABLE student DROP score;

-- 查看表结构

DESC student;

-- 修改表名方式一

ALTER TABLE 旧表名 RENAME AS 新表名;



-- 修改表名方式二

RENAME TABLE 旧表名 To 新表名;



# 实例

-- 将数据表 student 更名为 stu

ALTER TABLE student RENAME AS stu;

-- 将数据表 stu 更名为 stu_table

RENAME TABLE stu TO stu_table;

-- 查看表名

SHOW TABLES;


-- 删除表 


USE db1;



-- 创建 student 表

CREATE TABLE student( 

  id INT,

  name VARCHAR(20) 

);



-- 直接删除 student 表 

DROP TABLE student;



-- 先判断再删除 student 表 

DROP TABLE IF EXISTS student;



"""
